import os
from dashscope import MultiModalConversation
from http import HTTPStatus

# 获取本地视频帧的绝对路径列表（按时间顺序排序）
frame_dir = "out/"
frame_files = sorted(
    [os.path.abspath(os.path.join(frame_dir, f)) 
     for f in os.listdir(frame_dir) 
     if f.endswith(".jpg")],
  key=lambda x: int(x.split("_")[1].replace("sec", "").split(".")[0])
)

# 构造视频帧的file协议路径列表
video_frames = [f"file://{path}" for path in frame_files]

messages = [
    {"role": "user",
     "content": [
         {"video": video_frames},  # 替换URL列表为本地文件路径
         {"text": "帮我 上，比如：视频中的时间，像素坐标，什么颜色的衣服，在做什么事情"}
     ]}
]
response = MultiModalConversation.call(
    # 若没有配置环境变量，请用百炼API Key将下行替换为：api_key="sk-xxx",
    api_key='sk- dc936e930c72e49082',
    model='qwen-vl-max-latest',  # 此处以qwen-vl-max-latest为例，可按需更换模型名称。模型列表：https://help.aliyun.com/zh/model-studio/getting-started/models
    messages=messages
)
if response.status_code == HTTPStatus.OK:
    print(response["output"]["choices"][0]["message"].content[0]["text"])
else:
    print(response.code)
    print(response.message)